package jmine.tec.database.pack;

import java.io.OutputStream;
import java.util.Set;

/**
 * Conjunto de arquivos prontos para exportação.
 * 
 * @author lundberg
 */
public interface Pack {

    /**
     * Adiciona um arquivo com o caminho dado ao pacote, contendo os dados passados.
     * 
     * @param fileCode tipo de arquivo
     * @param path caminho do arquivo,
     * @return output stream para escrita do conteúdo.
     * @throws PackException PackException
     */
    OutputStream put(String fileCode, String... path) throws PackException;

    /**
     * Obtém os elementos do pacode
     * 
     * @return set of elements
     */
    Set<PackElement> getElements();

}